#pragma once

struct CAspectorObject;

class CJoinPoint
{
	friend class CAspector;
protected:
	CAspectorObject* pObject;
	int vtlbIndex;
	va_list parametersStack;
	type_info* type;
	Vtlb* vtlb;
protected:
	CJoinPoint(CAspectorObject* pObject,int vtlbIndex,va_list parametersStack,type_info* type,Vtlb* vtlb)
		:pObject(pObject),vtlbIndex(vtlbIndex),parametersStack(parametersStack),type(type),vtlb(vtlb)
	{
	}
public:
	CAspectorObject* GetObject()
	{
		return pObject;
	}
	Vtlb* GetVTLB()
	{
		return vtlb;
	}
	const type_info& GetType()
	{
		return (*type);
	}
	int GetFuncIndex()
	{
		return vtlbIndex;
	}
};
